/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import java.io.Serializable;
import java.util.ArrayList;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
/**
 *
 * @author Солнце
 */
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Routes implements Serializable, DataLoadable {

    private ArrayList<Route> allRoutes;

    public Routes() {
        allRoutes = new ArrayList<Route>();
    }
    /**
     * Добавление маршрута
     * @param flightsRoute Новый маршрут 
     */
    public void addRoute(Route flightsRoute){
        if (!allRoutes.contains(flightsRoute)) {
                allRoutes.add(flightsRoute);
            }
    }
    
    /**
     * Метод, который возвращаяет количество объектов в коллекции 
     * @return int количество объектов
     */
    public int getSize(){
        return this.allRoutes.size();
    }
    
    public Route getRouteByIndex(int index){
        return this.allRoutes.get(index);
    }

    /**
     * Метод, который проверяет, содержится ли переданный объект в коллексии
     * @param element Объект
     * @return boolean результат проверки
     */ 
//TODO: Реализовать
    public boolean contains(Model element) {
       return false;
    }
    
    /**
     * Метод, который заменяет объект в колекции новым объектом(на основе ключевого поля) 
     * @param element Объект
     */     
//TODO: Реализовать
    public void update(Model newelement) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

     /**
     * Метод, который добавляет объект в колекцию
     * @param element Объект
     */ 
    public void add(Model newelement) {
       addRoute((Route)newelement);
    }

    /**
     * Метод, который возвращает объект по индексу 
     * @param i Индекс
     * @return Model Объект
     */ 
    public Model getElementByID(int i) {
        return getRouteByIndex(i);
    }
}
